Network updating arrangement using simulated annealing process to select level of service capabilities of permanent grouped communication links without changing network topology

ABSTRACT

A method and arrangement are provided for network update operations in communications network technology. A simulated annealing technique is used to generate a solution to the problem of providing minimum service capabilities via links of the network, at minimum cost, particularly in terms of the number of exchanges to be updated. Two operations are provided in particular which increase the speed at which a solution is generated while avoiding, at least to a significant extent, the effect of local minima.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a 371 of PCT/GB94/02752 filed Dec. 16, 1994, whichis a continuation-in-part of our copending commonly assigned applicationSer. No. 08/208,896 filed Mar. 14, 1994, now abandoned.

FIELD OF THE INVENTION

The present invention relates to arrangements for updating communicationnetworks.

BACKGROUND OF THE INVENTION

Communications networks will generally comprise communication channels,or links, connected by exchanges, or switches. The route taken by data(or voice messages) travelling from one set of terminal equipment viathe network to another set of terminal equipment is determined by theswitches. The capacity, that is the maximum amount of data, which can betransported in a fixed length of time, can be limited by the mature ofthe links. However much more significantly, the service which can beprovided on those links can be dictated by the exchange design. If anetwork operator wants to update the services it can offer to customers,it must then first update its exchanges.

This can obviously present a major cost, particularly where a network isextensive. In Britain, looking at the private line area, some 6000exchanges support one million private wires. Hence the migration ofexchanges even to support one million private wires, this being onlypart of the private wire business provided by British TelecommunicationsPLC, is both large scale and high profile.

It is not possible to upgrade all of the exchanges at the same time andit is therefore necessary to develop an updating arrangement which willmeet a number of constraints. In particular, it is clearly important tominimise upgrade costs but to maximise customer benefit.

This has been a substantial problem in the past. Any exchange upgradingprocess, apart from the unattainable option of updating 100% ofexchanges, will have consequential effects in terminal of the servicecapabilities available to different terminal equipment. In the past,upgrading arrangements have relied substantially on guess work and havetaken of the order of several (for instance 15) hours to generate asolution.

SUMMARY OF THE INVENTION

According to a first aspect of the present invention, there is provideda network updating arrangement, for a network which comprises aplurality of communication links with associated switches, each switchhaving an update status selected from at least two alternative statuses,the service capabilities of each link being functionally affected by theupdate status of at least one switch, and the links being groupedaccording to allocated identifiers, each group sharing a commonidentifier,

the arrangement comprising a database system for logging an updatestatus indicator for each switch, the database system comprising datastored in at least two different data structures, these comprising alink data structure and a switch data structure, the link data structurelogging for each link of the network its allocated identifier oridentifiers and all switches whose update status functionally affectsthe service capabilities of that link, and the switch data structureproviding for each switch an index to the link data structure, loggingthereby all links whose service capabilities are functionally affectedby the update status of that switch, and storing for each switch theupdate status indicator,

the arrangement further comprising data input means to the link datastructure, for selecting, in respect of one or more identifiers, aminimum number of the links in the group of links for which it is thecommon identifier, and indicating means responsive to said selection toindicate one or more of the switches whose update status can be changedto enable predetermined service capabilities to be provided on saidminimum number of links.

The common identifier can be for instance related to a particularcustomer. Hence, in a network updating arrangement as described above, asolution can be generated to the problem of providing a minimum numberof links of increased service capabilities to specified customers.

According to a second aspect of the present invention, there is provideda network updating arrangement, for a network which comprises aplurality of communication links with associated switches, each switchhaving an update status selected from at least two alternative statuses,the service capabilities of each link being functionally affected by theupdate status of at least one switch, and the links being groupedaccording to allocated identifiers, each group sharing a commonidentifier,

the arrangement comprising a database system for logging an updatestatus indicator for each switch, the database system comprising datastored in at least two different data structures, these comprising alink data structure and a switch data structure, the link data structurelogging for each link of the network its allocated identifier oridentifiers, a service capability indicator, and all switches whoseupdate status functionally affects the service capabilities of thatlink, and the switch data structure providing for each switch an indexto the link data structure, logging thereby all links whose servicecapabilities are functionally affected by the update status of thatswitch, and storing for each switch the updates status indicator,

the arrangement further comprising data input means to the switch datastructure, for selecting one or more switches and changing theassociated update status indicator for the selected switch or switches,the link data structure being responsive to said selection and change toupdate the service capability indicators for links whose servicecapabilities are functionally affected by the update status of theselected switch or switches.

Network updating arrangements of this second type are structurallysimilar to those according to the first aspect of the present invention,but can be driven from data representing a selection of switches forupdating, rather than from data representing a selection representinglink capacity per selected customer.

Preferably a network updating arrangement will incorporate both aspectsdescribed above.

According to a third aspect of the present invention, there is provideda method of updating a communications network, which network comprises aplurality of communication links with associated switches, each switchhaving a update status selected from at least two alternative statuses,the service capabilities of each link being functionally dependant onthe update status of at least one switch, and the links being groupedaccording to allocated identifiers, each group sharing a commonidentifier, wherein the method comprises:

i) storing an indicator indicating the update status for each switch, ina first data structure of a database system;

ii) logging all links whose service capabilities are functionallyaffected by the update status of each switch, by means of a plurality ofindexes to a second data structure of said database system;

iii) selecting, in respect of one or more identifiers, a minimum numberof links in the group of links for which it is the common identifier;and

iv) identifying an optimal set of switches, selected from the switchesof the network, for which said selected minimum number of links willhave different service capabilities as a consequence of changing theupdate status of each of said optimal set of switches.

Preferably, the identification of an optimal set of switches is carriedout by means of a simulated annealing technique.

Also preferably, a method as described above might optionally includethe steps of selecting a set of switches and changing the update statusindicator of each switch of said set and identifying the links whoseservice capabilities would be changed as a consequence of acorresponding change in update status for the switches of said set.

Simulated annealing is a known problem solving technique in which onestarts with a random solution to the problem and then varies parametersarbitrarily, looking at the effect on the solution. If the effect isbeneficial, the parameter changes are accepted.

The simulated annealing technique is one of several known problemsolving techniques. It is a fourth aspect of the present invention thatthere is provided a network updating arrangement based on the use ofsimulated annealing functionality.

In the network updating arrangements scenario, there are clearly amultiplicity of parameters which can be varied which affect a finalsolution. Embodiments of the present invention allow one or moreselected parameters to drive the process. In an embodiment where aninitial constraint is selected to be that a minimum service capabilitybe provided to each customer, the lowest level of operation which mightbe made available for parameter variation in order to move towards asolution might be simply to start with the condition that 100% ofexchanges are updated and then to delete identified exchanges until asolution can no longer be reached.

According to a fifth aspect of the present invention, operationsavailable in a simulated annealing process, for use in a networkupdating arrangement, comprise "toggle exchanges" and "flip exchanges".In this context, these operations are respectively to select an exchangeat random and change its update status, from off to on or from on to offdepending whether it was initially off or on, and to select at randomtwo exchanges having different update statuses and swapping their updatestatuses. That is, in a "switch" operation, a double "toggle" operationis applied.

It has been found that this combination of operations can be used toachieve a relatively optimal solution without extending the process overtoo long a period. A problem which can arise during a simulatedannealing operation is that of local minima, where a new solution isapparently better than a previous solution but in fact leads theannealer to a less acceptable final solution. The toggle operation canquickly reduce the number of exchanges having positive update status,which is clearly to the good so long as a solution is still available,but can trigger local minima. The switch operation, however, can be usedto escape from local minima.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the present invention will now be described, by way ofexample only, with reference to the following drawings:

FIG. 1 shows a flow diagram for a network updating arrangement accordingan embodiment of the present invention;

FIG. 2 shows a first data structure for use in carrying out the processrepresented by the flow diagram in FIG. 1;

FIG. 3 shows a second data structure for use in carrying the processrepresented by the flow diagram in FIG. 1;

FIGS. 4A and 4B show apparatus for providing the network updatingarrangement represented by FIG. 1; and

FIG. 5 shows a flow diagram for the core structure of a simulatedannealing technique for use in the network updating arrangementrepresented by FIG. 1.

DETAILED DESCRIPTION OF THE DRAWINGS

In network updating arrangements according to embodiments of the presentinvention, the problem which is probably most difficult to solve is thatof satisfying minimum requirements in terms of service capabilities forselected, or all, customers in a manner representing least cost/delayfor the network operator. However, there are a number of scenarios whichmight be met. For instance:

1. it might be desirable that increased service capabilities be madeavailable to a particular customer and an important question for thenetwork operator will then be how many, and which, exchanges would berequired to support that;

2. it might be found preferable to provide improved service capabilitiesto several selected customers. The network operator might then need toknow what exchanges would be required in support, and what level ofservice capabilities can then be provided consequently to additionalcustomers, not in the selected set;

3. it might be important to the network operator that specific exchangesare selected for early updating. The question then would be the leveland location of improved service capability which would be achieved; or

4. the problem to be solved might be driven by a requirement thatincreased service capability be available on specific links. Thesolution to a question in those terms would then be identification ofexchanges which can be updated to enable the necessary increased servicecapability.

All of these problems can be solved by equipment and processes accordingto embodiments of the present invention which adopt simulated annealing,this being an example of a "stochastic" technique, able to find a nearoptimal solution to problems which cannot be solved by conventionalalgorithms.

The following is a set of definitions for use in the description below.

WIRES

Each Wire is defined by

    <wire-id>, {<supporting-exchange>}+, <dependant-customer>+

<wire-id > is a unique identifier for the wire, as used in the CAMMSdatabase.

<supporting-exchange> is an exchange that must be present in order forthis wire to be supported.

<dependant-customer> is a customer who is dependant upon the wire.

Typically a wire is supported by two exchanges, with one dependantcustomer. Exceptions to the rule necessitate this more general approach.

A wire is supported for improved services if and only if all itssupporting exchanges are to be upgraded.

EXCHANGES

An exchange can be in one of two states

to be upgraded or on.

not to be upgraded or off.

CUSTOMERS

For each customer two pieces of information are stored.

The number of wires that the customer is dependant upon.

The minimum percentage of these that must be supported.

SOLUTION

A valid solution is a set of exchanges that are to be marked on, suchthat each customer has at least the minimum percentage of wiressupported.

The solution is notionally represented as a bit set. If the i^(th)member of the bit set is 1 then the i^(th) exchange is to be upgraded.If the i^(th) member of the bit set is 0 then the i^(th) exchange is notto be upgraded.

The starting point for a problem solving operation might be therequirement that certain wires must be supported. This might be aminimum percentage for each customer, or specific wires chosen by thecustomer from a set. The simulated annealing process then performsoperations upon an initial solution with a view to minimising the numberof exchanges marked on, subject to the bit set denoting a validsolution.

At the lowest level, there are two operations, these being to take anexchange currently marked off and to mark it on, and to take an exchangecurrently marked on and to mark it off.

In keeping with the simulated annealing approach it is necessary to workout the cost of these operations before they are performed. An operationis only performed if the chance it brings about is accepted by themetropolis function (metrop ()). It is for this reason that we haveconsider₋₋ on₋₋ chance() and consider₋₋ off₋₋ change(). They work outthe potential change in cost of turning an exchange on and off,respectively. This is performed by counting the number of customers thatare left unsatisfied after the change and also the change in the numberof exchanges. Clearly in the case of consider₋₋ on₋₋ change(), thechange in the number of exchanges is +1 and in the case of consider₋₋off₋₋ change(), -1.

Considering the implication of turning an exchange off is straightforward. For each exchange the list of supported wires is known. None ofthese wires can be supported if the exchange is turned off. Some may notcurrently be supported anyway because one or more of the othersupporting exchanges is already off. For those that were supportedhitherto it is necessary to decrement the count of any and all customersdependant upon them.

Considering the implications of turning an exchange on is morecomplicated. None of the wires that this exchange supports are currentlysupported. Some of them may be if the exchange is turned on, but only ifall other supporting exchanges are on. For those wires where allsupporting exchanges are not present it is necessary to increment thecount of any and all customers dependant upon them.

As both operations are only considering potential chance, they makemodifications to copies of the number of wires supported per customer.

The way the annealer might be implemented is a requirement that thealgorithm always maintains a solution that satisfies all customers. Thusas soon as an operation results in a customer no longer being satisfied,it will not be applied. Thus consider₋₋ off₋₋ change() will stop as soonas one customer is no longer satisfied. This speeds up the routine by afactor of 3. Consider₋₋ off₋₋ change() is the most expensive function.

Stopping in the middle of consider₋₋ off₋₋ change() is not safe if it isfollowed immediately by a consider₋₋ on₋₋ change(). Consider₋₋ off₋₋change() could stop prematurely because customer X was no longersatisfied, only to find that consider₋₋ on₋₋ change() would correct theproblem. Therefore, an additional argument is given to consider₋₋ off₋₋change() to indicate when it is safe to perform this optimisation.Performance is aided by arranging for calls to be structured in such away the optimisation is possible.

Once the potential effects of turning an exchange on or off are realisedit is necessary to determine whether all customers' required minimumpercentage of wire is met. As this task is common to both on and offchanges it is performed in one function (consider₋₋ on₋₋ off₋₋change()). This function acts as a wrapper that hides consider₋₋ on₋₋change() and consider₋₋ off₋₋ change().

If the operation is to be performed then the actual modification isperformed by make₋₋ on₋₋ off₋₋ change(). This function is very similarto consider₋₋ on₋₋ change() and consider₋₋ off₋₋ change() except itmodifies the number of wires per customer and not a copy of this value.

As mentioned above, there are two relatively important high-leveloperations provided by embodiments of the present invention. These arethe TOGGLE and SWITCH operations.

The first operation (TOGGLE) is the simplest and the only one that canlead to direct improvements in the solution. It selects at random a bitin the solution set and toggles its value. That is to say, it selects anexchange at random and, if it is on marks it off or if it is off marksit on. This operation is trivially supported by consider₋₋ on₋₋ off₋₋change().

Whilst TOGGLE can quickly reduce the number of exchange, it may also gettrapped in a local minimum. The second operation (SWITCH) is used to getout of local minima. It selects at random two exchanges, one that is onand one that is off. It then toggles both exchanges at the same time.

It might be thought that this operation is equivalent to two consecutivetoggles but this is not the case. In the switch, the effect of theoperation is only calculated after both toggles have been performed. Thecombination is more likely to be accepted than two individual togglesand therefore it is possible to move out of local minima. The net effecton the number of exchanges which are on and off is zero. If allcustomers are satisfied then this change will always be accepted by themetropolis functions.

The SWITCH operation is implemented by passing two exchanges toconsider₋₋ on₋₋ off₋₋ change() to be toggled. If the second exchange ismissing then consider₋₋ on₋₋ off₋₋ change() behaves as a single toggle.

It may be the case that more intelligent operations could be employed.This would have the effect of perhaps improving performance by examiningmore "promising" changes more frequently. The danger is the moreintelligent operations would be computationally expensive.

A more interesting need for new operations would be if it could be shownthat there are cases where a better configuration exists but that theTOGGLE and SWITCH operations are unlikely to be able to make the move.That is, in the same way that TOGGLE alone gets caught in local minima,there are more complex local minima that ensnare TOGGLE and SWITCH.

Such cases no doubt exist. Consider the following, where each letterdenotes an exchange A =1, B =1, C =1, D =0, E =0.

A, B and C are caught in some sort of embrace such that all three ofthem can combine with other exchanges to support all customers but it isnot possible to turn off any one of them and still satisfy allcustomers. It would, however, be possible to turn A, B, C all off andthen turn D and E on and still satisfy all customers. This would be abetter solution as it would require one less exchange.

It may be difficult to make this move using TOGGLE and SWITCH. Itdepends on how D and E behave with A, B and C. If no pair drawn from {A,B, C}×{D, E} can combine with others to satisfy all customers then it isdifficult to see how the move could be made.

An operation that selected 5 exchanges, 3 on and 2 off and turned the 3off and the 2 on would solve the problem. However, such an operationseems unduly specialised and the chances of selecting the correctcombination of exchanges at the same time are so slim as to make theoperation effectively worthless.

With the sort of numbers relevant to the current British private wirenetwork, such an operation would select A, B, C, D and E at the sametime, once every 10¹⁵ iterations.

The challenge is to find a more general operation that avoids localminima, but works with sufficient frequency to justify its inclusion.The best way to do this might be to introduce the new operation only atlocal minima (say when the cost has stayed constant for N moves) and tomake it more sophisticated. That is, it would select some of theexchanges it operates upon by some means other than random.

Looking at the selection mechanism for operations, the SWITCH requiresone exchange that is on and one that is off. If the initial solutionconsists of only exchanges that are on, then the SWITCH cannot beapplied. An implementation might loop indefinitely trying to randomlyselect an exchange that was off. It is therefore necessary only to applythe SWITCH when there is at least one off exchange. However, it shouldbe noted that the real value of the SWITCH is in escaping from localminima and that applying it too early is unnecessary. It is thereforepossible to control when the SWITCH operation is performed by setting aFLIP parameter to an upper limit of the proportion of exchanges that areon before the SWITCH is employed. Thus, if FLIP is set to 0.7, theSWITCH operation will only be performed when 70% or less of theexchanges are marked on.

The TOGGLE operation is selected with a probability P. The SWITCHoperation is selected with a probability 1-P. The default value of P iscontrolled by DEFAULT₋₋ OP1₋₋ PROB and might for instance be set to 0.5.

The process and operations described above are based on simulatedannealing. The core structure of a simulated annealer is as follows:

    ______________________________________                                        Temperature : = initial.sub.-- temperature;                                   for i : = 1 to num.sub.-- iterations                                          nsucc : = 0;                                                                  for j : = 1 to num.sub.-- over                                                if (random( ) <toggle.sub.-- prob)/* if operation 1 is to be                  performed */                                                                  Δcost = toggle.sub.-- operation(solution);                              if (metrop(Δcost, Temperature))                                                  solution : = make.sub.-- toggle.sub.-- change(solution);                      nsucc.sup.++ ;                                                       endif                                                                         else          /*operation 2 is to be performed */                             Δcost = switch.sub.-- operation(solution);                              if (metrop(Δcost, Temperature))                                         solution : = make.sub.-- switch.sub.-- change(solution);                      nsucc.sup.++ ;                                                                endif                                                                         endif                                                                         if (nsucc> nlimit)                                                            break                                                                         end for j                                                                     Temperature : = Temperature * T.sub.-- FACTOR;                                end for i                                                                     ______________________________________                                    

There are a number of variables here that can be adjusted to alter theperformance of the algorithm. These are;

INITIAL TEMPERATURE

The value of the temperature variable is as crucial in this annealer asit is in any other. Set the initial value too high and early workconsists of purely random modifications. Set the initial value too lowand only improvements are possible and the annealer degenerates to arandomised hill climber.

NUM₋₋ ITERATIONS

The number of times around the main loop controls the number of timesthe temperature is dropped. Too low a value and the annealer does nothave time to converge, too high and it takes longer to complete than isstrictly necessary.

NUM₋₋ OVER, NLIMIT

These two control the number of operations that can be performed at eachtemperature step. "nlimit" defaults to half of num₋₋ over. That is if50% or more of operations are successful then we skip to the nexttemperature step. The rationale for this is that the temperature is sohigh that modifications can be made too easily.

TOGGLE₋₋ PROB

This controls the probability that the toggle operation will beselected, as opposed to the switch operation. The rationale of this isalready discussed above.

T₋₋ FACTOR

This controls the rate at which temperature is reduced. Values around0.9 to 0.95 seem sensible. It would be possible to reduce temperature bya constant amount, as opposed to a multiplicative factor. The benefitsof one approach over another are not clear.

In a simulated annealing operation, in general, one starts with a randomsolution. In the context of a network updating arrangement, this mightbe that all exchanges (switches) will be updated in order to achieve 10%of wires per customer having increased service capabilities. Theannealing process then applies the two high level operations, TOGGLE andSWITCH, randomly to the solution. If the solution is improved, thesystem will accept the new solution, but if it worsens, it will onlyaccept the new solution if it is likely the new solution in the longterm will generate a better final solution. That decision is made atleast partly in accordance with the "temperature", this representing ameasure of the time taken or number of operations already performed bythe system. The temperature is set initially at a value selected byexperimentation, and reduced automatically by the system, for instancelinearly with time or as a function of the number of iterationsperformed at each temperature.

Referring to FIG. 5, a flow diagram showing the core structure of theannealer can be set out as follows.

An operation starts at STEP 500. At STEP 501, the operator sets aninitial temperature, decided after previous experimentation to achieve areasonable starting point. The core structure then establishes a firstloop, STEP 502, so that the process will repeat for a fixed number ofiterations.

Within the first loop, the core structure establishes a second loopbased on "nsucc". Before going into the second loop, "nsucc" is set atzero, STEP 503. The second loop is then established to run a fixednumber of times, "num₋₋ over", STEP 504. This second loop takesindividual exchanges and chooses whether a TOGGLE or a SWITCH operationis appropriate, STEP 507, and looks at the cost of the selectedoperation for each exchange in the light of the current temperature,STEPS 505, 506. As appropriate, the status of each exchange is theneither changed or left unchanged, STEPS 505, 506, and "nsucc" increasedif an exchange is upgraded.

The core structure will exit the second loop either because "j" hasreached "num₋₋ over" or because an "NLIMIT" condition applies, STEP 508.This is the condition, discussed above, which allows the operation tomove on, reducing the temperature more quickly, in the event that toomany results are positive, indicating that the temperature wasoriginally set too high. It is "NLIMIT" which reviews "nsucc".

The core structure will exit the first loop when a preselected limit onthe number of iterations has been reached, STEP 509. Otherwise, thetemperature is stepped down, STEP 510, and the second loop re-entered.

Referring to FIG. 1, a flow diagram showing the system in operation canbe set out as follows.

The operation is triggered at step 1, START. It will accept an initialsolution at step 2, for instance upgrading 95% of exchanges to achieve20% increase in lines offering improved service capabilities. Step 3 isanother data input step, the operator setting an initial temperature.The operator may at this stage also set "T₋₋ FACTOR", discussed above.At step 4, the COST variable is set to the cost of the initial solutionselected.

Importantly, the system now randomly selects from two high leveloperations, TOGGLE and FLIP. In step 6, the system applies the randomlyselected operation to the current solution. If the resultant cost,NEWCOST, is less than the cost set at step 4 above, then NEWCOST isaccepted, these being steps 7 and 8. If, however, NEWCOST is not lessthan the SOLNCOST set at step 4 above, the system may still acceptNEWCOST. It now applies step 9, that is it calculates the current valueof a function of the temperature and of the relationship between NEWCOSTand COST. In the light of this function, at decision step 10, the systemwill either decide to accept the NEWCOST, reversing to step 8, orabandon NEWCOST in favour of the previous SOLNCOST, at step 11.

At this point, there is a decision step 12 at which the system maydecide the latest cost is acceptable as a final solution. If this is thecase, the system proceeds to END, step 13. If, however, variousconditions apply, such as the temperature remaining high or the latestvalue of COST being high, the system will make a check, step 14, as towhether the temperature is due to be changed, change or not change thetemperature accordingly, and return to step 5, selecting the nextoperation to apply.

It should be noted that the function of temperature and COST, applied atstep 9, is as follows:

    f (t,c)=e.sup.-c/t

The system described above can be put into operation using a standardcomputer. However, the computer has to be organised to provide relevantdata structures and it is convenient to provide at least two relateddata structures, described as follows.

Referring to FIG. 2, data structures 20 associated with an individualwire (link) are shown. The main one is the pw₋₋ table 21. There is oneentry 22 for every private wire. Each entry includes the wire-id (astring) as well as an indication of its type (KILOSTREAM, MEGASTREAMetc). (A "wire" in this context refers to a private customer link,extending from a first to a second set of terminal equipment anddedicated to the use of that customer.)

Each wire is supported by a number of exchanges. The list of exchangenumbers is stored in the support table 23 and each pw₋₋ table entry 22indicates the start and length of the list relevant to it. In FIG. 2 thefirst entry 22 in the pw₋₋ table 21 has three supporting exchanges 24.

Each wire is required by a number of customers. This is usually one, butcan be more. The list of customer numbers is stored in the dependant₋₋table 25. In FIG. 2 the first entry 22 in the pw₋₋ table 21 is requiredby two customers.

The number of entries 22 in the pw₋₋ table 21 is equal to the number ofprivate wires (npws). As the number can be quite large and each entrymust store the full wire ID, this array can be quite large (>10 Mb). Themajority of the fields in a pw₋₋ table entry 22 are untouched duringexecution. The exception is the allocated flag which indicates at anypoint in time whether the wire is currently being supported (flag==`Y`)or not (flag==`N`).

The number of entries in the support₋₋ table 23 cannot be determinedeasily but it is calculated by mapper (not shown) and thereafter storedin shared memory (nsupports). Similarly with the number of entries inthe dependant₋₋ table 25. Both of these arrays need only store smallnumbers and therefore size is not a problem. Data in these arrays is notmanipulated during run-time.

Referring to FIG. 3, there are further data structures 30, centredaround the exchange table 31, one entry 32 per exchange. When you areconsidering whether to use an exchange or not it is necessary todetermine quickly what wires each exchange supports. These tables are infact part of a single large table stored in shared memory. Each entry 32contains an index 33 in the pw₋₋ table 21, indicating the wiressupported by this exchange.

If two exchanges support the same wire then one entry in each of theirtables will point to the same entry 34 in the pw₋₋ table 21. This isshown in FIG. 3.

The number of entries in the exchange table 3 is equal to the number ofexchanges (nexchange). The number of entries in the individual tables isequal to the number of wires supported by that exchange. The totalnumber of entries in the individual tables should be equal to the numberof entries in the support₋₋ table 23.

At the end of an operation, the solution arrived at is a list indicatingwhich exchanges are to be upgraded and which are not. This isrepresented by an array of 1 s and 0 s, with one entry for eachexchange. If the i^(th) entry is 1, then the i^(th) exchange is to beupgraded.

The hardware used to run the simulated annealing operation will have auser interface. Referring again to FIG. 1, at step 1, to start thesystem off, and before the user interface can be started, the sharedmemory containing the data structures 20, 30 described above has to becreated. This will be done in a manner determined by the file structuresand directory structures employed in setting up the system.

Referring to FIGS. 4A and 4B, suitable user interfaces 400 for use inembodiments of the present invention are known and can provide both datainput means and indicator means. For instance, the user interface 400may be a screen 402 showing a "customer browser" layout, the user beingprovided with a mouse to move an on-screen cursor 403 to select andchange fields. By choosing certain fields, the screen layout can bechanged, for instance to a "control panel" layout 404. Data can beinput, for instance via the "Number of iterations" field 405, andinformation can be displayed, for instance in relation to a selectedcustomer by means of a further alternative "Customer Details", screenlayout 406. The progress of an annealing operation to find an optimalsolution can also be monitored using an appropriate screen layout.

The user interface 400 and data structures 20,30, already described,interface with the data processing engine 470.

The following optimal screen layouts, together with the customer browserlayout, can give considerable control to a user over the statistics thesystem is used to generate or view.

The "Customer Browser Window" provides the main point of the userinterface 400. It can list all customers alphabetically and allowselection of a particular customer with the mouse. It can also showdynamically the current solution in terms of the number of exchanges tobe upgraded, and consequently the number of channels to be upgraded. Thetotal number of wires can also be shown.

The "customer browser" has buttons that allow starting the program (Run)420, stopping it during execution (Stop) 421, quitting the application(Quit) 422, saving the current state (Save/Save As) 423 and restoring asaved state (Load) 424.

The "control panel" can be displayed by pressing the "Control Panel"button 430 on the customer browser window. Here the user can select anappropriate made for the tool (minimum cost or maximum customersatisfaction). By inserting the desired values in the spaces provided,the user can set a default allocation (the percentage of each customer'schannels that must be upgraded) and the number of iterations (the timethe annealer is allowed to reach a solution). The Flag menu 407 allowsthe user to select one of the three main uses of the annealer: "normal"means the annealer should minimise the number of exchanges used whileachieving the desired allocation rates. Fixed No of Ex means theannealer should use the number of exchanges indicated in the Flag Valuefield 408 but maximise the number of channels that can be allocated, andExchange List means that the file named in Flag Value 408 contains alist of exchanges and the annealer should determine what allocationwould be achieved if these exchanges were upgraded.

More sophisticated control over allocation rates can be achieved bysetting different rates for different customers. This is provided for byselecting a customer from the customer browser, and pressing the ViewCustomer button, 441. In FIG. 4, Customer 105 has been selected andtheir details will then be shown in the "Customer Details" screen layout406. The only editable field in the "customer details" window 406 is theone specifying the desired allocation; any entry in it will override thedefault allocation percentage set in the control panel and is valid forthat customer only. In the example shown, Customer 105 will have aminimum of 30% of their wires allocated, while she rate is only 10% forall other customers.

Another alternative screen layout, the Exchange Browser 440 allows theuser to supply additional constraints on exchanges. It is displayed bypressing the Edit Exchanges button 431 in the customer browser window.The exchange browser 440 displays alphabetically the exchanges that arecurrently upgraded/not upgraded. Each exchange can be selected with themouse, or an exchange name can be manually entered in the spaceprovided. Then the exchange can be set to free (the program may decideif it should be upgraded), on (this exchange must be upgraded) or off(this exchange must be upgraded). By default, all exchanges are free.

An arrangement according to an embodiment of the present invention canallow the user to specify that certain wires must be upgraded. As theremay be several hundred thousand of them, this might be done on a percustomer exchange basis. A customer is selected from the customerbrowser, then the button Edit Customers Wires 460 is pressed. This willdisplay an "Edit Wires" screen layout, showing all the exchanges atwhich the customer owns wires. The user then selects an exchange atwhich wires are of interest, and presses an "Apply" button. This liststhe wires the customer owns at that exchange. Selecting a wire andsetting it to "on" using a toggle menu provided ensures that this wirewill be upgraded by setting all exchanges this wire is connected to to"on".

The user interface 400 of FIG. 4 can also act as the indicating meansfor results of a planning operation. It can display a solution in atleast three different ways:

i) As a table showing the customers, the number of wires and channelsowned by them, and their desired and achieved upgrade levels. Note theremight be a minimum allocation percentage for each customer, such as 10%set by means of the control panel screen display, but a differentminimum allocation percentage, such as 30%, might be set for a selectedCustomer. The output file is suitable to be loaded into a spreadsheet.

For each customer, a complete breakdown can be shown by selecting acustomer, and then pressing the right mouse button. This displays apopup menu with three choices: viewing all wires, viewing all upgradedwires or viewing all wires that were not upgraded.

ii) As a list of exchanges that were/were not upgraded. This is achievedby displaying an "exchange browser" screen layout after the program hasbeen run.

iii) As a map showing the location of exchanges that were upgraded,either as a complete solution or for one or more selected customers.

It has been found that upgrading arrangements according to embodimentsof the present invention can be used to generate solutions in upgradingprocesses in times of the order of an hour or two, that is,approximately 10 times as quickly as arrangements previously used. Aswill be understood from the description above, embodiments of thepresent invention can also be extremely versatile since the user caninput any of a range of constraints to the process so that the "whatif?" scenario can be solved for many different starting points. The corestructure, described in relation to FIG. 5, simply provides a basiswhich can then be built on to look at many different scenarios in acomplex environment.

A general description of an embodiment of the present invention is asfollows:

A communications network updating arrangement comprising a data store, adata processor configured to apply a simulated annealing technique todata from the data store, a data and control input for controlling, andapplying constraints to, the operation of the data processor in applyingthe simulated annealing technique, and a results indicator for showingthe results of applying the simulated annealing technique to the data.

The data could be said to identify links of the network and to comprisethe update status of switches of the network. The update status in thiscontext will potentially constrain the capacity of one or moreassociated links to be used in providing a service or services. The datastore may be said to comprise at least two data structures, a first forholding data concerning links of the network and a second for holdingdata concerning switches of the network. The data concerning switches ofthe network might comprise an index to the first data structure so as toidentify any link or links whose capacity may be constrained by theupdate of individual switches.

Looking at use of an embodiment of the present invention in planningupgrades to the UK telecommunications network, input data to theplanning tool is a number of business customers owning private wiresserved by links in a network comprising 6,000 exchanges. About 4,000customer premises are involved and there is a total of just under450,000 private wires, amounting to just under 700,000 channels.

The planning tool, which can of course be used without the "front end"described above, has functionality to allow specification of minimumupgrade levels, a fixed number of exchanges to be upgraded, and aproposed solution. Planning in phases can also be supported, andsolutions can be saved and restored.

In a planning operation where cost is a constraint, of the twooperations TOGGLE and SWITCH, TOGGLE operations from on to off alwaysreduce cost and will be accepted as long as other constraints are stillmet. TOGGLE operations from off to on will increase cost but will beaccepted with a probability proportionate to the number of channels thatcan be upgraded with the particular exchange. A SWITCH operation will ofcourse generally be accepted if he operation results in a net gain inthe number of channels supported. If there is a net loss, it will onlybe accepted in a manner inversely proportional to the net loss.

Thus, where there are dominant cost constraints, the tool will be biasedtowards updating large exchanges. However, a minimum upgrade level canbe specified where a minimum number of channels must be upgraded foreach customer.

It has been found, in the UK scenario described above, that therelationship between minimum upgrade levels and achieved coverage isnon-linear. That is, the number of exchanges which have to be upgradedrises relatively slowly, until the upgrade level required reaches wellover 50%. This sort of result will of course depend heavily on theactual network involved, however.

A major upgrade programme may have to be done in stages. Although aplanning tool according to an embodiment of the invention can supportplanning in stages, generally there will be a worse overall resultbecause, having completed the first stage, some exchanges will becomeupgraded and therefore "fixed". It may be a constraint that a fixednumber of exchanges must be upgraded, in addition to there being a costconstraint. With this combination, the tool will tend to selectexchanges that provide maximum value for money, ie those that allow themaximum number of channels to be upgraded, without regard to thedistribution of upgraded channels over customers. It is possible toovercome this tendency to an uneven result by adding the "minimumupgrade" constraint so that customers get at least a minimum level ofimproved services or capacity.

What is claimed is:
 1. A network updating arrangement, for a networkwhich comprises a plurality of permanent communication links withassociated switches, each switch having an update status selected fromat least two alternative statuses, the service capabilities of each linkbeing functionally affected by the update status of at least one switch,and the links being grouped according to allocated identifiers, eachgroup sharing a common identifier,the arrangement comprising a databasesystem for logging an update status indicator for each switch, thedatabase system comprising data stored in at least two different datastructures, these comprising a link data structure and a switch datastructure, the link data structure logging for each link of the networkits allocated identifier, or identifiers and all switches whose updatestatus functionally affects the service capabilities of that link, andthe switch data structure providing for each switch an index to the linkdata structure, logging thereby all permanent links whose servicecapabilities are functionally affected by the update status of thatswitch, and storing for each switch the update status indicator, thearrangement further comprising data input means to the link datastructure, for selecting, in respect of one or more identifiers, aminimum number of the permanent links in the group of links for which itis the common identifier, and indicating means responsive to saidselection to indicate one or more of the switches whose update statuscan be changed to enable predetermined service capabilities to beprovided on said minimum number of links without changing theassociation between links and services, wherein each identifiercorresponds to specific terminal equipment, said terminal equipmenthaving access to the group of permanent links sharing that identifierfor communications by means of the network.
 2. A network updatingarrangement, for a network which comprises a plurality of communicationlinks with associated switches, each switch having an update statusselected from at least two alternative statuses, the servicecapabilities of each link being functionally affected by the updatestatus of at least one switch, and the link being grouped according toallocated identifiers, each group sharing a common identifier,thearrangement comprising a database system for logging an update statusindicator for each switch, the database system comprising data stored inat least two different data structures, these comprising a link datastructure and a switch data structure, the link data structure loggingfor each link of the network its allocated identifier or identifiers, aservice capability indicator, and all switches whose update statusfunctionally affects the service capabilities of that link, and theswitch data structure providing for each switch an index to the linkdata structure, logging thereby all links whose service capabilities arefunctionally affected by the update status of that switch, and storingfor each switch the update status indicator, the arrangement furthercomprising data input means to the switch data structure, for selectingone or more switches and changing the associated update status indicatorfor the selected switch or switches, the link data structure beingresponsive to said selection and change to update the service capabilityindicators for links whose service capabilities are functionallyaffected by the update status of the selected switch or switches.
 3. Amethod of updating a communications network, which network comprises aplurality of communication links with associated switches, each switchhaving an update status selected from at least two alternative statuses,the service capabilities of each link being functionally dependent onthe update status of at least one switch, and the links being groupedaccording to allocated identifiers, each group sharing a commonidentifier, wherein the method comprises:i) storing an indicatorindicating the update status for each switch in a first data structureof a database system; ii) logging all links whose service capabilitiesare functionally affected by the update status of each switch, by meansof a plurality of indexes to a second data structure of said databasesystem; iii) selecting, in respect of one or more identifiers, a minimumnumber of links in the group of links for which it is the commonidentifier; and iv) identifying by means of a simulated annealingprocess an optimal set of switches, selected from the switches of thenetwork, for which said selected minimum number of links will havedifferent service capabilities as a consequence of changing the updatestatus of each of said optimal set of switches.
 4. A method of updatinga communication network, which network comprises a plurality ofcommunication links with associated switches, each switch having anupdate status selected from at least two alternative statuses, theservice capabilities of each link being functionally dependant on theupdate status of at least one switch, and the links being groupedaccording to allocated identifiers, each group sharing a commonidentifier, wherein the method comprises:i) storing an indicatorindicating the update status for each switch, in a first data structureof a database system; ii) logging all links whose service capabilitiesare functionally affected by the update status of each switch, by meansof a plurality of indexes to a second data structure of said databasesystem; iii) selecting a set of switches and changing the update statusindicator of each switch of said set; and iv) identifying by means ofsaid plurality of indexes the links whose service capabilities would bechanged as a consequence of a corresponding change in update status forthe switches of said set.
 5. A network planning tool, for use inupdating a communications network, the network comprising a plurality ofcommunication links joined by switches to provide services to terminalequipment, wherein the service capability of each link is dependent onthe update status of at least one switch,said tool comprising a firstdata structure, a second data structure and a user interface, the firstdata structure comprising a log of the links of the network, and ofidentifiers related to the links, each identifier being associated withspecific terminal equipment served by a selected group of said links ofthe network, the second data structure comprising a log of the switchesof the network, a log of update status indicators for the switches, andan index, for each switch, to the first data structure, which indexprovides a log of the links whose service capabilities are dependant onthe update status for that switch, and the user interface comprisingdata input means for selection of any one of a group of variables, thegroup comprising a set of said identifiers, a number or capacity oflinks associated with each identifier, and a set of one or moreswitches, said tool further comprising indicator means responsive to aselection made by means of the data input means to indicate any of agroup of data sets, said group of data sets comprising firstly anoptimal set of switches whose update status can be changed so as toprovide a minimum change in service capability of links having a commonidentifier, and secondly a number or capacity of links, groupedaccording to their common identifier, whose service capability will bechanged by a change in update status of a selected set of switches.
 6. Amethod for use in updating a communications network, the networkcomprising a plurality of switches which control routing for data orvoice traffic on a plurality of traffic links, which method comprisesthe application of a simulated annealing technique to the problem ofgenerating a set of switches selected from the switches of the network,which set of switches, on updating, facilitate improved servicecapabilities on links of the network according to predeterminedrequirements,wherein the method comprises the application of at leasttwo alternative operations, these being a toggle operation wherein anupdate status relevant to a switch is changed regardless of whether itwas initially positive or negative, and a switch operation whereinupdate statuses relevant to two switches are both changed in oneoperation, the initial update status for the two switches beingdifferent.
 7. A method according to claim 6 which further comprises aselection step for selecting an operation to apply.
 8. A methodaccording to claim 7 wherein a toggle operation is selected unless oneor more conditions are met.